package org.carl.component.job.annotation

import org.carl.component.job.enums.MisfireStrategyEnum
import org.carl.component.job.enums.ScheduleTypeEnum

/**
 * email carl.chen@bk.ru
 * @Author: 陈青松
 * @Date: 2019/2/19 22:40
 */
@Target(AnnotationTarget.FUNCTION)
@Retention(AnnotationRetention.RUNTIME)
@MustBeDocumented
annotation class XxlJobInfo(
    /**
     *  主键ID	    (JobKey.name)
     */
    val id: Int = 0,
    /**
     *执行器主键ID	(JobKey.group),此项不需要指定,会自动赋值
     */
//        val jobGroup: Int=0,
    /**
     * 任务执行CRON表达式 【base on quartz】
     */
    val scheduleConf: String = "0 0 * * * ? *",
    /**annotation
     *任务描述
     */
    val jobDesc:String,
    /**
     *NONE 无 CRON CRON FIX_RATE 固定速度
     */
    val scheduleType: ScheduleTypeEnum ,
    /**
     *负责人
     */
    val author: String,
    /**
     *报警邮件
     */
    val alarmEmail: String,
    /**
     *执行器路由策略
     */
    val executorRouteStrategy: String = "RANDOM",
    /**
     *执行器，任务参数
     */
    val executorParam: String = "",
    /**
     *阻塞处理策略
     */
    val executorBlockStrategy: String = "SERIAL_EXECUTION",
    /**
     *任务执行超时时间，单位秒
     */
    val executorTimeout: Int = 0,
    /**
     *失败重试次数
     */
    val executorFailRetryCount: Int = 0,
    /**
     *GLUE类型	#com.xxl.job.core.glue.GlueTypeEnum
     */
    val glueType: String = "BEAN",
    /**
     *GLUE源代码
     */
    val glueSource: String = "",
    /**
     *GLUE备注
     */
    val glueRemark: String = "",
    /**
     *GLUE更新时间
     */
    val glueUpdatetime: String = "",
    /**
     *子任务ID，多个逗号分隔
     */
    val childJobId: String = "",
    /**
     *调度状态：0-停止，1-运行
     */
    val triggerStatus: Int = 0,
    /**
     * 调度过期策略
     */
    val misfireStrategy: MisfireStrategyEnum = MisfireStrategyEnum.DO_NOTHING
)